Deskripsi

Analisis ini bertujuan untuk membuat visualisasi data berdasarkan dataset UAS yang diberikan, termasuk grafik univariat, bivariat, multivariat, dan interaktif. Dataset ini mencakup informasi tentang harapan hidup, pendapatan per kapita, populasi, dan rata-rata jumlah anak dari berbagai negara dan benua selama beberapa tahun.

Data Preparation

1. Mengimpor Dataset

# Membaca dataset dari file Excel
file_path <- "Data UAS.xlsx"
df <- read_excel(file_path, sheet = "Data") %>%
  mutate(
    Benua = factor(Benua),  # Mengubah Benua menjadi faktor
    Tahun = as.integer(Tahun) # Memastikan Tahun dalam format integer
  )

# Menampilkan beberapa baris pertama untuk pengecekan struktur data
head(df)
## # A tibble: 6 × 8
##   geo   Negara    Benua Tahun Angka_Harapan_Hidup Pendapatan_per_kapita Populasi
##   <chr> <chr>     <fct> <int>               <dbl>                 <dbl>    <dbl>
## 1 afg   Afghanis… asia   1800                28.2                  481.  3280000
## 2 afg   Afghanis… asia   1801                28.2                  481.  3280000
## 3 afg   Afghanis… asia   1802                28.2                  481.  3280000
## 4 afg   Afghanis… asia   1803                28.2                  481.  3280000
## 5 afg   Afghanis… asia   1804                28.2                  481.  3280000
## 6 afg   Afghanis… asia   1805                28.2                  481.  3280000
## # ℹ 1 more variable: Jumlah_anak <dbl>

2. Statistik Deskriptif

# Menampilkan ringkasan statistik dari dataset
summary(df)
##      geo               Negara               Benua           Tahun     
##  Length:44325       Length:44325       africa  :12150   Min.   :1800  
##  Class :character   Class :character   americas: 7875   1st Qu.:1856  
##  Mode  :character   Mode  :character   asia    :13275   Median :1912  
##                                        europe  :11025   Mean   :1912  
##                                                         3rd Qu.:1968  
##                                                         Max.   :2024  
##  Angka_Harapan_Hidup Pendapatan_per_kapita    Populasi          Jumlah_anak   
##  Min.   : 0.00       Min.   :   163.0      Min.   :6.510e+02   Min.   :0.710  
##  1st Qu.:31.16       1st Qu.:   974.1      1st Qu.:2.972e+05   1st Qu.:4.210  
##  Median :36.13       Median :  1714.7      Median :1.811e+06   Median :5.830  
##  Mean   :42.99       Mean   :  5932.4      Mean   :1.380e+07   Mean   :5.235  
##  3rd Qu.:58.43       3rd Qu.:  4512.2      3rd Qu.:6.370e+06   3rd Qu.:6.570  
##  Max.   :85.50       Max.   :221544.1      Max.   :1.451e+09   Max.   :8.860

1. Grafik Univariat

Histogram: Distribusi Angka Harapan Hidup

ggplot(df, aes(x = Angka_Harapan_Hidup)) +
  geom_histogram(
    bins = 30, 
    fill = "#69b3a2", 
    color = "white", 
    alpha = 0.9
  ) +
  theme_minimal() +
  labs(
    title = "Distribusi Angka Harapan Hidup",
    x = "Angka Harapan Hidup",
    y = "Frekuensi"
  ) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
    axis.text = element_text(size = 10)
  )

Interpretasi: Histogram ini menunjukkan bahwa angka harapan hidup memiliki distribusi yang bervariasi. Puncak histogram menunjukkan kelompok negara yang memiliki harapan hidup dominan dalam dataset.

2. Grafik Bivariat

Scatter Plot: Pendapatan per Kapita vs Angka Harapan Hidup

p_scatter <- ggplot(df, aes(
  x = Pendapatan_per_kapita,
  y = Angka_Harapan_Hidup,
  size = Populasi,
  color = Benua,
  text = paste(
    "Negara:", Negara, 
    "<br>Populasi:", scales::comma(Populasi),
    "<br>Pendapatan:", scales::comma(Pendapatan_per_kapita),
    "<br>Harapan Hidup:", round(Angka_Harapan_Hidup, 2)
  )
)) +
  geom_point(alpha = 0.8) +
  scale_x_log10(labels = scales::comma) +
  theme_minimal() +
  labs(
    title = "Pendapatan per Kapita vs Angka Harapan Hidup",
    x = "Pendapatan per Kapita (Log Skala)",
    y = "Angka Harapan Hidup",
    color = "Benua",
    size = "Populasi"
  ) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
    legend.position = "bottom"
  )

plotly::ggplotly(p_scatter, tooltip = "text")

Interpretasi: Scatter plot ini menunjukkan adanya hubungan positif antara pendapatan per kapita dan angka harapan hidup. Negara-negara dengan pendapatan per kapita tinggi umumnya memiliki angka harapan hidup yang lebih tinggi.

3. Grafik Multivariat

Heatmap: Rata-rata Jumlah Anak Berdasarkan Benua dan Tahun

heatmap_data <- df %>%
  group_by(Benua, Tahun) %>%
  summarize(Rata_Jumlah_Anak = mean(Jumlah_anak, na.rm = TRUE), .groups = "drop")

p_heatmap <- ggplot(heatmap_data, aes(x = Tahun, y = Benua, fill = Rata_Jumlah_Anak)) +
  geom_tile(color = "white") +
  scale_fill_gradientn(colors = brewer.pal(9, "YlOrRd"), na.value = "grey") +
  theme_minimal() +
  labs(
    title = "Rata-rata Jumlah Anak Berdasarkan Benua dan Tahun",
    x = "Tahun",
    y = "Benua",
    fill = "Rata-rata\nJumlah Anak"
  ) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
    axis.text.x = element_text(angle = 45, hjust = 1)
  )

plotly::ggplotly(p_heatmap)

Interpretasi: Heatmap ini menggambarkan tren jumlah rata-rata anak berdasarkan benua dan tahun. Warna yang lebih gelap mengindikasikan rata-rata jumlah anak yang lebih tinggi.

4. Grafik Interaktif

Bubble Plot Interaktif: Pendapatan vs Harapan Hidup

p_bubble <- plot_ly(
  data = df,
  x = ~Pendapatan_per_kapita,
  y = ~Angka_Harapan_Hidup,
  size = ~Populasi,
  color = ~Benua,
  text = ~paste(
    "Negara:", Negara, 
    "<br>Populasi:", scales::comma(Populasi),
    "<br>Pendapatan:", scales::comma(Pendapatan_per_kapita),
    "<br>Harapan Hidup:", round(Angka_Harapan_Hidup, 2)
  ),
  type = "scatter",
  mode = "markers",
  marker = list(sizemode = "diameter", opacity = 0.7)
) %>%
  layout(
    title = "Bubble Plot: Pendapatan vs Harapan Hidup",
    xaxis = list(title = "Pendapatan per Kapita (Log Skala)", type = "log"),
    yaxis = list(title = "Angka Harapan Hidup"),
    legend = list(title = list(text = "Benua"))
  )

p_bubble

Interpretasi: Bubble plot ini memberikan eksplorasi lebih lanjut dengan ukuran titik yang merepresentasikan populasi negara. Negara dengan populasi besar tampak lebih dominan dalam grafik.

Kesimpulan

  1. Histogram menunjukkan distribusi angka harapan hidup yang beragam, dengan puncak di kisaran tertentu.
  2. Scatter plot mengindikasikan hubungan positif antara pendapatan per kapita dan angka harapan hidup.
  3. Heatmap mengungkapkan pola rata-rata jumlah anak per benua dari tahun ke tahun.
  4. Bubble plot interaktif memungkinkan eksplorasi lebih dalam terhadap hubungan antar variabel.